import pandas as pd
import matplotlib.pyplot as plt
import statistics
import datetime

from lw_config import config_util

# 替换为你的Excel文件路径
file_path = util.get_2024_execl()

# 使用pandas的read_excel函数读取文件
all_sheet = pd.read_excel(file_path, sheet_name=None, keep_default_na=False)


def get_w2(w2):
    if w2:
        return w2
    else:
        return 0


# 日期
rq = []
# 体重
weight = []
lines = '日期,平均体重\n'
for sheet_name, sheet_dframe in all_sheet.items():
    # 过滤没有数据的行
    single_df = sheet_dframe.dropna(how="all")

    lines += sheet_name + ":\n"
    for index, row in single_df.iterrows():
        if row['日期']:
            s = []
            if get_w2(row['体重1']) != 0:
                s.append(get_w2(row['体重1']))
            if get_w2(row['体重2']) != 0:
                s.append(get_w2(row['体重2']))

            if len(s) > 0:
                avg = round(statistics.mean(s), 1)
                if avg != 0:
                    lines += "\t" + str(row['日期']) + ',' + str(avg) + '\n'
                    rq.append(str(row['日期']))  # x字符串没关系
                    weight.append(avg)  # y轴得要数字了，不然高低不好排

plt.figure(figsize=(20, 8), dpi=80)
print(f'2024年体重记录次数={len(weight)}')
print(f'2024年最大体重max={max(weight)}')
print(f'2024年最小体重min={min(weight)}')
print(f'2024年平均体重={round(sum(weight) / len(weight), 2)}')
f = open('2024_avg_weight.txt', 'w')
f.write(f'2024年体重记录次数={len(weight)}\n')
f.write(f'2024年最大体重max={max(weight)}\n')
f.write(f'2024年最小体重min={min(weight)}\n')
f.write(f'2024年平均体重={round(sum(weight) / len(weight), 2)}\n')
